This invention relates to the field of telecommunications services. Specifically, this invention is to an improved method for managing the storage of toll-free records in a telecommunications database.
A telecommunications system includes a complicated network of switches and modules in continual interaction with one another. Due to heavy service demands by a large number of telecommunications systems users, it is important that network trafficking be efficient and reliable. Within a telecommunications system, components interact for call processing and for transferring information. For example, components may communicate with one another to request information needed to process a call, provide a service, or update a record. Components that operate or respond slowly or fail may very likely adversely affect call processing through other parts of the system and contribute to an overall increase in call processing traffic.
Telecommunications equipment includes storage media, such as magnetic or optical disks, configured for storing information, including a toll-free number database. A toll-free number database is composed of a number of records. Typically, a toll-free record within a toll-free number database includes information specific to the corresponding toll-free number. A toll-free record may include information regarding such functions as call processing, on-line menus, call forwarding, messaging, and a variety of other applications. Thus, toll-free records vary not only in content but in size as well.
The organization of toll-free records within the toll-free database may vary from system to system. For example, some systems organize the toll-free number database by record size. In one such system, a plurality of memory locations are allocated within the storage medium. Each memory location corresponds to a predetermined range of record sizes. For storing and locating records within a memory location, each record may be treated as a fixed-size record of the largest size within the corresponding range of record sizes. Records may be identified by a subgroup of the record content, referred to as a record-key. For example, in a toll-free database, a record-key may consist of the toll-free number. Records may be located within storage locations through algorithms, such as a hashing algorithm, based upon the relative magnitude of the record-key. Records may also be stored in accordance with such algorithms. If a new record is assigned the space currently occupied by an existing record, a linked list may be utilized for storing the over-lapping information. Of course, a toll-free number database may be organized in any one of a number of other ways.
Systems in which toll-free records are sorted and stored in accordance with record size include a storage medium. Preferably, storage medium space is divided into fixed partitions. Each partition may be referred to as a bucket. Preferably, each bucket is assigned a record size range. For example, a storage medium may have three buckets, A, B, and C. In this example, toll-free records of less than 80 bytes may be stored in bucket A, records of 81 to 2000 bytes may be stored in bucket B, and records of 2001 to 5000 bytes may be stored in bucket C. New records are added to database buckets in accord with record size. It is not uncommon for such a database to have forty or more buckets, each corresponding to one of forty or more record size ranges.
As bucket occupancy increases and buckets become xe2x80x9cfullxe2x80x9d, it may become necessary to provide additional space in the storage medium for adding new records. It should be recognized that while additional space is provided, it is highly desirable to continue to efficiently manage the database. In the prior art, efficient management of the database is maintained by reallocating and extending the partition size for the xe2x80x9cfullxe2x80x9d buckets. Thus, newly added records continue to be stored in one of three buckets, A, B, and C, while bucket sizes are adjusted as necessary to accommodate the new records.
The prior art has demonstrated that call processing may be adversely affected while the buckets in a storage medium are reallocated and extended. Typically, the records are temporarily written to a supplementary storage medium such as a tape so the buckets can be reallocated and extended within the primary storage medium. The records are then rewritten to the primary storage medium and the database is restored. It should be recognized that the database is out of commission through re-partitioning. The prior art confirms that a lot of time is required to repartition a telecommunications storage medium. The procedure may take several days or weeks for a large database. Having a toll-free database out of commission for such an extensive amount of time is extremely burdensome for a live telecommunications service control point.
Thus, there is recognized in the telecommunications field a need for an improved method for managing the storage of records in a toll-free database.
The present invention is directed at an improved method for managing a telecommunications database of variable sized toll-free records. The invention comprises allotting a plurality of buckets within a storage medium. A record size limitation is assigned to each bucket, thus defining an acceptable range of record sizes for each bucket. A minimum free-memory capacity threshold is determined for each bucket. Records are identified within the database by a record-key, such as a designated (i.e., toll-free) number. A database-index identifies each record-key within the database and the bucket in which the corresponding record is stored. The database also includes a list identifying the buckets that may presently accept new records. Preferably, the buckets are identified by memory location and a designated range of record sizes, providing a bucket-index. The bucket-index may also indicate whether the free memory capacity of a bucket is greater than or less than the minimum free-memory capacity threshold or may specify the free memory capacity of the bucket.
Prior to adding new records or modifying existing records, the size of the new/modified record is determined. The bucket-index is accessed and the record is assigned/written to the appropriate bucket.
If the unoccupied memory of a bucket is less than a minimum free-memory threshold, a new bucket is added to the database and the bucket-index is updated accordingly. The database-index is updated as new records are added to or removed from buckets.
In a further embodiment, an occupancy-index is provided for identifying buckets which may be consolidated with buckets having the same record size limitation.